<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			
			for (var i = 0; i < 10; i++) {
			    setTimeout(function(){
			        console.log(i);
			    }, 1000);
			}
			//输出10个10, var下的i是全局变量,for每次循环后,i都被重新赋值,因此会循环打印出10;
			
			for (let i = 0; i < 10; i++) {
			    setTimeout(function(){
			        console.log(i);
			    }, 1000);
			}
			// 输出0~9，let可以声明块级作用域的变量,i变量只在‘{}’下有效,
			// for循环体比较特殊，每次执行都是一个全新的独立的块作用域，用let声明的变量传入到 for循环体的作用域后，不会发生改变，不受外界的影响
		</script>
	</body>
</html>
